import axios from 'axios';
import Cookie from 'js-cookie';
import Router from 'vue-router';
import { Message } from 'element-ui';

const router = new Router({ mode: 'history' });

axios.defaults.baseURL = 'http://119.23.244.149:3000';

axios.interceptors.request.use(config => {
  let token = Cookie.get('rabbit_token');
  if (token) config.auth = { username: token };
  return config;
}, err => err);

axios.interceptors.response.use(res => {
  if (res && res.status === 200) {
    return Promise.resolve(res.data.data);
  }
}, err => {

  if (err && err.response) {
    let errMsg = err.response.data;
    Message({
      type: 'error',
      message: errMsg.msg ? errMsg.msg : '服务器内部程序错误'
    });
    handleError[errMsg.code](errMsg);
    return Promise.reject(errMsg);
  } else {
    return Promise.reject(err);
  }
});

const handleError = {
  10000(err) { // 400[10000]: '参数错误'
  },
  10001(err) { // 401[10001]: '授权失败'
  },
  10002(err) { // 404[10002]: '找不到资源'
  },
  10003(err) { // 403[10003]: '禁止访问'
    Cookie.remove('rabbit_token');
    Cookie.remove('rabbit_userID');
    router.back(); // 返回页面
  },
  10004(err) { // 412[10004]: '资源已经存在'
  },
  10005(err) { // 500[10005]: '服务器错误'
  }
};

export default axios;